The present invention relates generally to control systems for process control, and more particularly, to data synchronization in a cooperative distributed control system where a controlled device, such as actuator or sensor, is controlled by multiple controllers.
A typical feedback control system comprises a single, centralized controller that receives feedback from one or more sensors and generates control signals for one or more actuators in the process. In this type of centralized control system, the control logic is implemented by a single controller with sufficient processing and memory to execute all of the data acquisition and control algorithms for the entire system.
A centralized control system can be easy to create and maintain because all of the control logic is at a single location. However, the processing requirements can be prohibitive if the central controller is expected to implement complex control algorithms, or to execute multiple control algorithms in parallel. Similarly, the bandwidth requirements to implement complex control algorithms may be prohibitive where data needs to be acquired from many remote sensors. Another drawback is that centralized control systems lack inherent robustness due to possible failure of the centralized controller. To ensure robustness, backup controllers may be required to ensure redundancy, which can make centralized control systems expensive to implement.
A distributed control system is a more complex control system where multiple controllers share responsibility for certain control functions. In a distributed control system, there is no single master controller for all control functions, and multiple controllers can exercise control over the same actuator and/or sensor. One example of this type of control system is a residential heating system with multiple heating elements and multiple controllers. The heating elements may be logically grouped into multiple zones. Each zone is independently controlled to maintain the temperature within the zone at a desired temperature set point. Each of the controllers is able to set the operating mode and desired temperature for each zone based on user input. In this example, the controllers need to work together in order to set a single mode and desired temperature for each zone without contention.
Distributed control systems can be scaled more easily than centralized control systems by adding additional controllers to extend the functionality of the control system. Another advantage of distributed control systems is their inherent redundancy. If one controller fails, other controllers are still available to perform the control functions of the failed controller.
In a distributed control system, each controller needs to know the state of the actuator or sensor it controls in order to perform the required calculations for its control function. The controller also needs to be able to set the value of state variables for the actuators and sensors. As an example, a user interface in a residential heating system needs to know the current temperature set point in a zone in order to determine whether heating or cooling should be applied. As another example, the controller may need to know the current temperature set point in order to determine whether the current temperature setting needs to be changed.
Because multiple controllers may be able to change a specific state variable of the actuator or sensor, no controller can assume the current state from the last command it sent to the actuator or sensor. Each actuator or sensor “owns” its current state, and the controller reads the state of the actuator or sensor each time the controller needs the data to perform a control action. In a large system with many controllers, actuators, and sensors, sufficient communication resources need to be provided to avoid congestion, long latency periods, and data throughput issues.
In some control systems, the actuators and sensors may be logically grouped together because they share a common state, such as an operating mode or set point. An inconsistency can cause control system errors and ambiguous control actions. As an example, in a residential HVAC system, the heating and cooling elements within a zone should have the same temperature set point. If the heating elements have a higher temperature set point than the cooling elements, the control system would try to heat and cool the zone simultaneously, with wasteful and ambiguous results. Thus, inconsistency can cause devices within a logical group to work against each other.
An inconsistent state for actuators and sensors within a group can be caused by a communication failure, a device failure, or interlaced commands from multiple controllers to members of the logical group. Because there are multiple controllers, more than one controller could try to change the state of an actuator or sensor at the same time, causing an inconsistency within the group. Inconsistent states can also occur if the number of actuators or sensors within a group change. An actuator or sensor within a group may be temporarily removed before a new state command is set by a controller and then added back after the command has already been sent. An example of this scenario would be when an actuator or sensor is removed to change the battery. Also, a newly-added actuator or sensor may have a different state than other actuators and sensors within a logical group.
Accordingly, there is a need to maintain data synchronization between actuators and sensors in a logical group that share a common state where the state is subject to control by multiple controllers.